/*
 * @descripttion: json schema 验证中间件
 * @author: cp
 * @Date: 2021-04-27 21:33:49
 */

const { ErrorModel } = require('../model/ResModel');

/**
 * 生成验证的中间件
 * @param {function} validateFn 验证函数
 * @returns
 */
function genValidator(validateFn) {
  async function validator(ctx, netx) {
    const data = ctx.request.body;
    // 数据校验
    const error = validateFn(data);
    if (error) {
      ctx.body = new ErrorModel({
        message: '数据格式校验失败',
      });
      return;
    }
    await netx();
  }
  return validator;
}

module.exports = {
  genValidator,
};
